home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO076.dsk / SHOW.CAT.bas < prev    next >
BASIC Source File  |  2012-02-16  |  6KB  |  162 lines

  1. 1  REM <CTRL-M><CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M> Catalog Utility <CTRL-M> by Paul Lieberman<CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M><CTRL-M>
  2. 10  GOTO 21: REM  <CTRL-O> Delete this line to make this a stand alone program <CTRL-N><CTRL-M>
  3. 11  HOME :D$ =  CHR$(4)
  4. 12  PRINT D$"PR#3": PRINT 
  5. 13  GOSUB 2300
  6. 21  POKE 32,6: POKE 33,70
  7. 22  POKE 34,3: POKE 35,21
  8. 23  HOME :D$ =  CHR$(4)
  9. 40  ONERR  GOTO 3000
  10. 90  DIM FI$(20),A$(20)
  11. 100 S$ = "<CTRL-O> <CTRL-N>"
  12. 110 U$ = "<CTRL-[><CTRL-O>U<CTRL-N><CTRL-X>"
  13. 120 BS$ =  CHR$(8)
  14. 130 CR$ = "_"
  15. 140 SS$ = "<CTRL-[><CTRL-O>S<CTRL-N><CTRL-X>"
  16. 145 C$ = "<CTRL-[><CTRL-O>C<CTRL-N><CTRL-X>"
  17. 150  VTAB 1: HTAB 20: PRINT "<CTRL-O>       Catalog Disk      <CTRL-N>";: VTAB 6: PRINT : HOME 
  18. 160  TEXT 
  19. 190  GOSUB 2300
  20. 200  ONERR  GOTO 3000
  21. 220  VTAB 6: PRINT "<CTRL-O>         Select Directory<CTRL-N>"
  22. 225  VTAB 18: PRINT "<CTRL-O> Arrows Select   <RETURN> Accepts<CTRL-N>"
  23. 230 A$(1) = "Slot and Drive"
  24. 240 A$(2) = "ProDOS Pathname"
  25. 250 UM = 10:F = 2
  26. 260  GOSUB 1500
  27. 265  HOME 
  28. 266  IF   NOT V  THEN  PRINT D$"-STARTUP"
  29. 270  IF V >1  THEN 490
  30. 380  VTAB 10: PRINT "Slot "U$" ";
  31. 390  GET A$:A =  VAL(A$): IF A <1  OR A >7  THEN 390
  32. 400  PRINT A:S = A
  33. 410  VTAB 12: PRINT "Drive "U$" ";
  34. 420  GET A$:A =  VAL(A$): IF A <1  OR A >2  THEN 420
  35. 430  PRINT A$:D = A
  36. 440  PRINT D$"PREFIX,S"S",D"D
  37. 450  PRINT D$"PREFIX"
  38. 460  INPUT PF$:PF$ =  LEFT$(PF$, LEN(PF$) -1)
  39. 470  PRINT D$"PREFIX/RAM"
  40. 480  GOTO 800
  41. 490  VTAB 8: PRINT "Source Directory "U$" /";:
  42. 500  GOSUB 2000
  43. 510 PF$ = "/" +L$
  44. 530  PRINT D$"VERIFY"PF$
  45. 800  POKE 32,6: POKE 33,70
  46. 810  POKE 34,3: POKE 35,21
  47. 820  HOME : PRINT 
  48. 880  PRINT D$"OPEN"PF$",TDIR"
  49. 890  PRINT D$"READ"PF$
  50. 900  PRINT "Reading Directory "PF$"....."
  51. 905 FI$(1) = ""
  52. 910  INPUT F$: INPUT F$: INPUT F$
  53. 920 Y = 1
  54. 930  INPUT F$
  55. 940  IF F$ = ""  THEN 990
  56. 950  IF  MID$ (F$,18,3) < >"DIR"  THEN 930
  57. 960 FI$(Y) =  MID$ (F$,2,15)
  58. 970 Y = Y +1: GOTO 930
  59. 990  PRINT D$"CLOSE"
  60. 1000  IF FI$(1) = ""  THEN V = 1: GOTO 1276
  61. 1020  FOR Z = 1 TO Y
  62. 1030  IF  RIGHT$(FI$(Z),1) = " "  THEN FI$(Z) =  LEFT$(FI$(Z), LEN(FI$(Z)) -1): GOTO 1030
  63. 1040  NEXT 
  64. 1200  HOME 
  65. 1210  PRINT "<CTRL-O>        Select Sub-Directory           <CTRL-N>"
  66. 1220  PRINT 
  67. 1225 A$(1) = PF$
  68. 1230  FOR Z = 1 TO Y
  69. 1240 A$(Z +1) = FI$(Z)
  70. 1250  NEXT 
  71. 1260 F = Y:LM = 4:UM = 6
  72. 1270  GOSUB 1500
  73. 1275  IF   NOT V  THEN  HOME : GOTO 160
  74. 1276  IF V = 1  THEN FI$ = PF$: GOTO 1285
  75. 1277 V = V -1
  76. 1280 PF$ = PF$ +"/" +FI$(V)
  77. 1281  GOTO 820
  78. 1285  HOME 
  79. 1290 A$(1) = "Display on screen"
  80. 1300 A$(2) = "Print on printer"
  81. 1310 F = 2:
  82. 1320  GOSUB 1500
  83. 1330  IF   NOT V  THEN  HOME : GOTO 160
  84. 1340  IF V = 2  THEN  PRINT : PRINT "Press a key when printer is ready": WAIT  -16384,128: POKE  -16368,0
  85. 1400  HOME 
  86. 1421  IF V = 2  THEN  PRINT D$"PR#1"
  87. 1425  REM  add a print statement here if you need printer codes
  88. 1430  PRINT D$"CAT"PF$
  89. 1431  IF V = 2  THEN  PRINT D$"PR#0": GOTO 1450
  90. 1435  HTAB 25: PRINT "<CTRL-O>  Press any Key <CTRL-N>"
  91. 1440  WAIT  -16384,128: POKE  -16368,0
  92. 1445  PRINT 
  93. 1450  HOME : GOTO 160
  94. 1500  REM  MENU SUB 
  95. 1530 V = 1:X = UM
  96. 1540  FOR N = 1 TO F
  97. 1541  IF N <15  THEN  VTAB X +N: HTAB LM +6
  98. 1542  IF N >14  THEN  VTAB X +N -14: HTAB LM +36
  99. 1543  PRINT N" "A$(N)
  100. 1544  NEXT 
  101. 1550  INVERSE 
  102. 1551  IF V <15  THEN  VTAB X +V: HTAB LM +6
  103. 1552  IF V >14  THEN  VTAB X +V -14: HTAB LM +36
  104. 1553  PRINT V" "A$(V)
  105. 1554  NORMAL 
  106. 1570 K =  PEEK( -16384): IF K <128  THEN 1570
  107. 1580  POKE  -16368,0
  108. 1581  IF V <15  THEN  VTAB X +V: HTAB LM +6
  109. 1582  IF V >14  THEN  VTAB X +V -14: HTAB LM +36
  110. 1583  PRINT V" "A$(V)
  111. 1584  IF K = 141  THEN 1630
  112. 1585  IF K = 155  THEN V = 0: GOTO 1630
  113. 1590  IF K >176  AND K <177 +F  THEN V = K -176: GOTO 1630
  114. 1600  IF K = 136  OR K = 139  THEN V = V -1: IF V = 0  THEN V = F
  115. 1610  IF K = 149  OR K = 138  THEN V = V +1: IF V = F +1  THEN V = 1
  116. 1620  GOTO 1550
  117. 1630  RETURN 
  118. 2000 L$ = ""
  119. 2010  PRINT CR$BS$;
  120. 2020 K =  PEEK(49152): IF K <128  THEN 2020
  121. 2030  POKE 49168,0
  122. 2040 K = K -128
  123. 2050  IF K = 8  OR K = 127  THEN 2150
  124. 2060  IF K = 13  THEN  PRINT " ": RETURN 
  125. 2070  IF K = 27  THEN  POP : GOTO 2140
  126. 2080  IF K <65  AND  LEN(L$) = 0  THEN 2020
  127. 2090  IF K <46  OR (K >57  AND K <65)  OR (K >90  AND K <97)  OR K >122  THEN 2020
  128. 2110 K$ =  CHR$(K): PRINT K$;
  129. 2120 L$ = L$ +K$
  130. 2130  GOTO 2010
  131. 2140  HOME : GOTO 160
  132. 2150  IF  LEN(L$) >0  THEN  PRINT " "BS$BS$;
  133. 2160  IF  LEN(L$) >1  THEN L$ =  LEFT$(L$, LEN(L$) -1): GOTO 2010
  134. 2170 L$ = "": GOTO 2010
  135. 2200  TEXT : HOME : PRINT 
  136. 2210  FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  137. 2220  FOR V = 3 TO 22: VTAB V: HTAB 2: PRINT C$;C$;: HTAB 77: PRINT C$;C$;: NEXT 
  138. 2230  VTAB 23: FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  139. 2240  RETURN 
  140. 2300  VTAB 6: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  141. 2310  VTAB 18: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  142. 2320  FOR V = 6 TO 18: VTAB V: HTAB 18: PRINT S$;S$;: HTAB 61: PRINT S$;S$;: NEXT 
  143. 2330  POKE 32,22: POKE 33,37
  144. 2340  POKE 34,6: POKE 35,17
  145. 2350  HOME 
  146. 2360  RETURN 
  147. 3000  POKE 216,0
  148. 3010 E =  PEEK(222)
  149. 3020  IF E = 255  THEN  TEXT : PRINT : PRINT "<CTRL-G>Control-C Break": END 
  150. 3030  IF E = 6  THEN E$ = "Path not found": GOTO 3060
  151. 3040  IF E = 3  THEN E$ = "No device connected": GOTO 3060
  152. 3050  GOTO 3100
  153. 3060  PRINT : PRINT "<CTRL-G>Error ====> "E$
  154. 3070  PRINT : PRINT "Press any Key to continue."
  155. 3080  WAIT  -16384,128: POKE  -16368,0
  156. 3090  HOME : GOTO 200
  157. 3100  PRINT "<CTRL-G>Uh-Oh we got error number "E
  158. 3110  PRINT "Please report this to the author."
  159. 3120  PRINT "Sorry....."
  160. 3130  PRINT : PRINT "Press any Key"
  161. 3140  WAIT  -16384,128: POKE  -16368,0
  162. 3150  PRINT D$"-STARTUP"